package exception;

/**
 *  java异常处理机制:try...catch
 *  try{
 *      代码片段
 *  }catch(XXXException e){
 *      当try的代码片段出现XXXException时的不就措施
 *  }
 */
public class TryCatchDemo {
    public static void main(String[] args) {
        System.out.println("程序开始了...");

        try{
            String line = null;
            System.out.println(line.length());//空指针异常

            String line1 = "";//因为上一句发生了异常,所以try块中此句跟一下的代码都不会被执行
            System.out.println(line1.charAt(0));//下标越界异常

            String line2 = "abc";
            System.out.println(Integer.parseInt(line2));

        }catch (NullPointerException e){//捕获空指针异常
            System.out.println("出现了空指针异常并解决了");//处理方法
        }catch (StringIndexOutOfBoundsException e) {//捕获字符串下标越界异常
            System.out.println("出现了下标越界异常并解决了");//处理方法
//        }catch (NullPointerException | StringIndexOutOfBoundsException e) {
//            System.out.println("出现了空指针异常或下标越界异常并解决了");
        }catch (Exception e){//可以在最后捕获超类异常,凡是该异常的自雷型都可以被捕获并处理
            System.out.println("反正就错了个错并解决了");
        }

        System.out.println("程序结束了...");











    }
}
